package cn.core.coding.service.intf;

import cn.core.coding.eo.ProjectModule;
import cn.core.coding.qo.ProjectModuleQO;
import cn.core.coding.vo.ProjectModuleVO;
import cn.core.tool.util.Paging;
import cn.core.tool.util.Param;

import java.util.Collection;

/**
 * 项目模块 服务接口
 */
public interface IProjectModuleService {

  /**
   * 项目模块 >>> 保存
   */
  public ProjectModule save(ProjectModule eo) throws Exception;

  /**
   * 项目模块 >>> 批量保存
   */
  public Collection<ProjectModule> saveBatch(Collection<ProjectModule> eos) throws Exception;

  /**
   * 项目模块 >>> 修改
   */
  public ProjectModule update(ProjectModule eo) throws Exception;

  /**
   * 项目模块 >>> 批量修改
   */
  public Collection<ProjectModule> updateBatch(Collection<ProjectModule> eos) throws Exception;

  /**
   * 项目模块 >>> 删除
   */
  public void remove(ProjectModule eo) throws Exception;

  /**
   * 项目模块 >>> 批量删除
   */
  public void removeBatch(Collection<ProjectModule> eos) throws Exception;

  /**
   * 项目模块 >>> 数据量
   */
  public Long count(ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 主键查询
   */
  public ProjectModule pk(ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 查询
   */
  public Collection<ProjectModule> query(ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 分页
   */
  public Paging<ProjectModule> paging(Param<ProjectModuleQO> param) throws Exception;

  /**
   * 项目模块 >>> 业务数据量
   */
  public Long countVo(ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 业务主键查询
   */
  public ProjectModuleVO pkVo(ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 业务查询
   */
  public Collection<ProjectModuleVO> queryVo(ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 业务分页
   */
  public Paging<ProjectModuleVO> pagingVo(Param<ProjectModuleQO> param) throws Exception;

}
